home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NOVA - For the NeXT Workstation
/
NOVA - For the NeXT Workstation.iso
/
SourceCode
/
MiniExamples
/
ZooView
/
Controller.m
< prev
next >
Wrap
Text File
|
1991-09-10
|
2KB
|
90 lines
/*
* Controller.m
*
* Purpose:
* This object serves as the browsers delegate, and does some initialization.
*
* You may freely copy, distribute, and reuse the code in this example.
* NeXT disclaims any warranty of any kind, expressed or implied, as to its
* fitness for any particular use.
*
* Written by: Mary McNabb
* Created: Apr 91
*
*/
#import "Controller.h"
#import "RightSubView.h"
#import "SideSplitView.h"
#import <appkit/Matrix.h>
#import <appkit/Window.h>
#import <appkit/NXBrowser.h>
#import <appkit/NXBrowserCell.h>
#import <appkit/Application.h>
#define MAXLEN 20 /* maximum number of chars in a name */
#define NUM_ANIMALS 17 /* make sure this number matches the
* number of strings in the following string table!! */
char *animals[] = { "doug", "elizabeth", "flip", "george", "henry", "howard", "jeff", "julie", "kate",
"leonard", "mai", "mary", "michelle", "sam", "sharon", "tony", "dawn" };
@implementation Controller
/*
* take advantage of IB and initialize the browser from here
*/
- setTheBrowser:anObject
{
theBrowser = anObject;
[theBrowser setDelegate:self];
[theBrowser reloadColumn:0];
return self;
}
/*
* Since we have to resize the subviews don't put the window on screen
* until we get here
*/
- appDidInit:sender
{
[zooSplitView initViews];
[[zooSplitView window] orderFront:self];
return self;
}
/*
* the user selected a name. Tell the right sub view to display the picture.
*/
- browserCellWasSelected:sender
{
char path[MAXLEN];
char *p;
[theBrowser getPath:path toColumn:1];
p = path; p++; /* skip the separator which precedes the name */
[rightView setAnimalPicture:p];
return self;
}
/*
* Fill the browser up with names from the string table.
*/
- (int)browser:sender fillMatrix:matrix inColumn:(int)column
{
int i;
id newCell;
for (i = 0; i < NUM_ANIMALS; i++) {
[matrix addRow];
newCell = [matrix cellAt:i :0];
[newCell setTag:(i * 16)];
[newCell setStringValue:animals[i]];
[newCell setLeaf:YES];
[newCell setLoaded:YES];
}
return i;
}
@end